package com.tree.backend.entity.pojo;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * <p>
 * 党建活动记录表，记录各类党建活动的基本信息和成果
 * </p>
 *
 * @author tree
 * @since 2025-10-15
 */
@Getter
@Setter
@ToString
@TableName("party_activity")
public class PartyActivity implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 活动唯一标识
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    /**
     * 活动编码
     */
    private String activityCode;

    /**
     * 活动名称
     */
    private String activityName;

    /**
     * 活动类型：1-理论学习，2-技术攻关，3-质量提升，4-安全生产，5-志愿服务，6-组织生活
     */
    private Byte activityType;

    /**
     * 活动主题
     */
    private String activityTheme;

    /**
     * 开始时间
     */
    private LocalDateTime startTime;

    /**
     * 结束时间
     */
    private LocalDateTime endTime;

    /**
     * 主办党组织编码
     */
    private String orgCode;

    /**
     * 活动地点
     */
    private String activityLocation;

    /**
     * 参与人数
     */
    private Integer participantCount;

    /**
     * 计划参与人数
     */
    private Integer plannedParticipantCount;

    /**
     * 活动预算
     */
    private BigDecimal activityBudget;

    /**
     * 实际花费
     */
    private BigDecimal actualCost;

    /**
     * 活动内容
     */
    private String activityContent;

    /**
     * 成果等级：1-优秀，2-良好，3-一般，4-较差
     */
    private Byte achievementLevel;

    /**
     * 主要参与党员编号，多个用逗号分隔
     */
    private String keyMemberCodes;

    /**
     * 活动总结
     */
    private String activitySummary;

    /**
     * 状态：1-已计划，2-进行中，3-已完成，4-已取消
     */
    private Byte status;

    /**
     * 创建时间
     */
    private LocalDateTime createTime;

    /**
     * 更新时间
     */
    private LocalDateTime updateTime;
}
